package speedchina.service.statistics;

import com.baomidou.mybatisplus.core.metadata.IPage;
import speedchina.dto.PageParamDTO;
import speedchina.dto.ProjectStatisticsParamDTO;
import speedchina.dto.UserStatisticsParamDTO;
import speedchina.vo.statistics.ProjectDetailVO;
import speedchina.vo.statistics.ProjectStatisicsVO;
import speedchina.vo.statistics.UserDetailVO;
import speedchina.vo.statistics.UserStatisicsVO;

import java.util.List;


/**
 * 统计service
 *
 * @author earthchen
 * @date 2018/10/19
 **/
public interface StatisticsService
{

    /**
     * 项目工时统计
     *
     * @param dto 项目统计查询参数
     * @return 项目统计信息列表
     */
    IPage<ProjectStatisicsVO> projectStatistics(ProjectStatisticsParamDTO dto, PageParamDTO pageParamDTO);


    List<ProjectStatisicsVO> projectStatistics(ProjectStatisticsParamDTO dto);

    /**
     * 员工同时统计
     *
     * @param dto 员工统计查询参数
     * @return 员工统计信息列表
     */
    IPage<UserStatisicsVO> userStatistics(UserStatisticsParamDTO dto,PageParamDTO pageParamDTO);

    List<UserStatisicsVO> userStatistics(UserStatisticsParamDTO dto);

    /**
     * 员工工时详情
     *
     * @param dto 员工统计查询参数
     * @param pageParamDTO 分页参数
     * @return 用户工时详情列表
     */
    IPage<UserDetailVO> userDetail(UserStatisticsParamDTO dto, PageParamDTO pageParamDTO);

    /**
     * 项目工时详情
     *
     * @param dto 项目统计查询参数
     * @param pageParamDTO 分页参数
     * @return 项目工时详情列表
     */
    IPage<ProjectDetailVO> projectDetail(ProjectStatisticsParamDTO dto, PageParamDTO pageParamDTO);
}
